Telegram Group & Telegram Channel
🐍 Python-задача с подвохом: кто съел яблоко?

У тебя есть список действий персонажей:


actions = [
("Alice", "picked"),
("Bob", "looked"),
("Charlie", "picked"),
("Bob", "dropped"),
("Alice", "dropped"),
("Charlie", "ate")
]


Каждое действие — это кортеж: (имя персонажа, действие).

📌 Правила:
1. Только тот, кто сначала "picked", может "ate".
2. Если кто-то "dropped", он больше не владеет объектом.
3. Нужно выяснить, кто съел яблоко, и проверить: мог ли он это сделать по правилам?

🧠 Задача:
Напиши функцию who_ate(actions: list[tuple[str, str]]) -> str, которая возвращает:
- "OK" — если всё законно
- "CHEATER" — если съевший не имел права

---

Решение с разбором:

```python
def who_ate(actions):
holding = set()
eater = None

for name, action in actions:
if action == "picked":
holding.add(name)
elif action == "dropped":
holding.discard(name)
elif action == "ate":
eater = name
if name in holding:
return "OK"
else:
return "CHEATER"

return "NO ONE ATE"
```

📌 **Как это работает:**
- `holding` — это множество тех, кто в данный момент "держит" объект.
- Как только кто-то `"ate"`, мы сразу проверяем: находится ли он в `holding`?
- Если нет — значит, он **съел чужое яблоко**. Подмена! 🤯

---

🔍 **Разбор на примере:**

```python
# Charlie picked → OK
# Charlie ate → всё ещё держит → OK
print(who_ate([
("Charlie", "picked"),
("Charlie", "ate")
])) # OK

# Alice picked, потом dropped, потом ate → нарушила правила
print(who_ate([
("Alice", "picked"),
("Alice", "dropped"),
("Alice", "ate")
])) # CHEATER
```

---

💡 Подвох в том, что многие решают задачу, просто считая количество действий, **не отслеживая актуальное владение** объектом.

📦 Задача хороша для собесов — проверяет внимание к деталям и мышление в терминах состояний.



tg-me.com/python_job_interview/1120
Create:
Last Update:

🐍 Python-задача с подвохом: кто съел яблоко?

У тебя есть список действий персонажей:


actions = [
("Alice", "picked"),
("Bob", "looked"),
("Charlie", "picked"),
("Bob", "dropped"),
("Alice", "dropped"),
("Charlie", "ate")
]


Каждое действие — это кортеж: (имя персонажа, действие).

📌 Правила:
1. Только тот, кто сначала "picked", может "ate".
2. Если кто-то "dropped", он больше не владеет объектом.
3. Нужно выяснить, кто съел яблоко, и проверить: мог ли он это сделать по правилам?

🧠 Задача:
Напиши функцию who_ate(actions: list[tuple[str, str]]) -> str, которая возвращает:
- "OK" — если всё законно
- "CHEATER" — если съевший не имел права

---

Решение с разбором:

```python
def who_ate(actions):
holding = set()
eater = None

for name, action in actions:
if action == "picked":
holding.add(name)
elif action == "dropped":
holding.discard(name)
elif action == "ate":
eater = name
if name in holding:
return "OK"
else:
return "CHEATER"

return "NO ONE ATE"
```

📌 **Как это работает:**
- `holding` — это множество тех, кто в данный момент "держит" объект.
- Как только кто-то `"ate"`, мы сразу проверяем: находится ли он в `holding`?
- Если нет — значит, он **съел чужое яблоко**. Подмена! 🤯

---

🔍 **Разбор на примере:**

```python
# Charlie picked → OK
# Charlie ate → всё ещё держит → OK
print(who_ate([
("Charlie", "picked"),
("Charlie", "ate")
])) # OK

# Alice picked, потом dropped, потом ate → нарушила правила
print(who_ate([
("Alice", "picked"),
("Alice", "dropped"),
("Alice", "ate")
])) # CHEATER
```

---

💡 Подвох в том, что многие решают задачу, просто считая количество действий, **не отслеживая актуальное владение** объектом.

📦 Задача хороша для собесов — проверяет внимание к деталям и мышление в терминах состояний.

BY Python вопросы с собеседований


Warning: Undefined variable $i in /var/www/tg-me/post.php on line 283

Share with your friend now:
tg-me.com/python_job_interview/1120

View MORE
Open in Telegram


Python вопросы с собеседований Telegram | DID YOU KNOW?

Date: |

Find Channels On Telegram?

Telegram is an aspiring new messaging app that’s taking the world by storm. The app is free, fast, and claims to be one of the safest messengers around. It allows people to connect easily, without any boundaries.You can use channels on Telegram, which are similar to Facebook pages. If you’re wondering how to find channels on Telegram, you’re in the right place. Keep reading and you’ll find out how. Also, you’ll learn more about channels, creating channels yourself, and the difference between private and public Telegram channels.

That growth environment will include rising inflation and interest rates. Those upward shifts naturally accompany healthy growth periods as the demand for resources, products and services rise. Importantly, the Federal Reserve has laid out the rationale for not interfering with that natural growth transition.It's not exactly a fad, but there is a widespread willingness to pay up for a growth story. Classic fundamental analysis takes a back seat. Even negative earnings are ignored. In fact, positive earnings seem to be a limiting measure, producing the question, "Is that all you've got?" The preference is a vision of untold riches when the exciting story plays out as expected.

Python вопросы с собеседований from in


Telegram Python вопросы с собеседований
FROM USA